import { Button, message, Modal } from 'antd';
import { useState } from 'react';

interface TaskResult {
    success: boolean;
    message: string;
}

export const ResetMachineIdModal: React.FC<{ open: boolean; onClose: () => void; }> = ({ open, onClose }) => {
    const [isLoading, setIsLoading] = useState(false);

    const handleReset = async () => {
        setIsLoading(true);
        try {
            const result = await window.electronAPI.runTask<TaskResult>('reset-machine-id');
            if (result.success) {
                message.success(result.message);
                onClose(); // Close modal on success
            } else {
                message.error(result.message);
            }
        } catch (error) {
            console.error('重置机器码时出错:', error);
            message.error('重置失败，请查看控制台获取更多信息。');
        } finally {
            setIsLoading(false);
        }
    };

    return (
        <Modal
            title="确认重置机器码"
            open={open}
            onOk={handleReset}
            onCancel={onClose}
            footer={[
                <Button key="back" onClick={onClose}>
                    取消
                </Button>,
                <Button key="submit" type="primary" danger loading={isLoading} onClick={handleReset}>
                    确认重置
                </Button>,
            ]}
        >
            <ul>
                <li>此操作将会修改 Cursor 应用的程序文件。</li>
                <li>在 Windows 系统上，此操作会请求管理员权限以修改注册表。</li>
                <li>此操作不可逆，并可能导致您需要重新登录或验证您的许可。</li>
            </ul>
        </Modal>
    );
} 